package leetcode_core.leetcode_1;

public class LongestPalindrome {
    public String longestPalindrome(String s) {
        String res = "";
        for(int i = 0;i<s.length();i++){
            String s1 = palindrome(s, i, i);
            String s2 = palindrome(s, i, i + 1);
            res = res.length()>s1.length()?res:s1;
            res = res.length()>s2.length()?res:s2;
        }
        return res;
    }
    //从s[l]和s[r]开始向两端扩散
    //返回以s[l]和s[r]为中心的最长回文串
    //同时传入l和r,便于处理中心点不在同一个点的情况
    //当l和r相等的时候,就是在寻找长度为奇数的回文串
    //当r=l+1的时候,就是在寻找长度为偶数的回文串
    private String palindrome(String s,int l,int r){
        //防止索引越界
        while (l>=0 && r<s.length() && s.charAt(l) == s.charAt(r)){
            l--;r++;
        }
        return s.substring(l+1,r);
    }

}
